package com.share.design.factory.simple;

/**
 * 普通工厂模式仅使用与只有一级接口，如果要多级接口要考虑抽象工厂
 *
 * author:caifan
 * date:2020/2/3
 */
public class MsgClient {
    public static void main(String[] args) {
        /**
         * 第一种使用switch case 普通工厂模式
         */
        Msg mq = MsgFactory.sendMsg("MQ");
        mq.send();
        Msg sms = MsgFactory.sendMsg("SMS");
        sms.send();

        System.out.println("-========-");

        /**
         * 第二种将switch case再次提取 及工厂方法模式
         */
        Provider provider = new MQMsgFactory();
        Msg msg = provider.produce();
        msg.send();
        provider = new SmsMsgFactory();
        msg = provider.produce();
        msg.send();
    }
}
